/**
 * 每个知识点我一般会举2个例子，1例子是生活中的方便大家理解。2例会举前端开发中用到的例子
 *  
 * 
 *  1 对修改关闭：对老代码尽量不用多
 *  2 对扩展开放：
 */
import axios from 'axios';
let instance = axios.create();


// 对修改关闭，对扩展开放，axios就是这样的设计

// 在请求拦截中如果不是http开头就替换成http://localhost:3000
// 在响应拦截中对状态码进行处理



// 请求拦截
// http://localhost:3000
instance.interceptors.request.use(config => {
    if (config.url!.startsWith('http')) {
        config.url = 'http://localhost:3000' + config.url;
    }
    return config;
});

// 响应拦截
//result={headers,data} 如果状态码是不是200的的话直接 报错
instance.interceptors.response.use(response => {
    if (response.status != 200) {
        return Promise.reject(response);
    }
    return response.data;
});


instance({
    url: '/api/users'
}).then(result => {
    console.log(result);
});